home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / qnx / local / decrypt-qnx.c < prev    next >
Text File  |  2005-02-12  |  1KB  |  57 lines

  1. static ascii2bin(short x)
  2. {
  3.   if (x>='0' && x<'A')
  4.     return x-'0';
  5.   if (x>='A' && x<'a')
  6.     return (x-'A')+9; 
  7.   return (x-'a')+26+9;
  8. char bits[77];
  9.  
  10. char *quncrypt(char *pw)
  11. {
  12.   static char newpw[14];
  13.   int i; 
  14.   int j,rot;
  15.   int bit,ofs;
  16.   char salt[2];
  17.   int temp;
  18.   
  19.   salt[0]=*pw++;
  20.   salt[1]=*pw++;
  21.   for (i=0;i<72;i++)
  22.     bits[i]=0;
  23.   for (i=0;i<12;i++)  
  24.     newpw[i]=ascii2bin(pw[i]);
  25.   newpw[13]=0;
  26.   rot=(salt[1]*4-salt[0])%128;  /* here's all the salt
  27. does.                                  A rotation */
  28.   for (i=0;i<12;i++)
  29.   {
  30.     for (j=0;j<6;j++)
  31.     {
  32.       bit=newpw[i]&(1<<j);  /* move password into bit array */
  33.       bits[i*6+j]=bit?1:0;
  34.     } 
  35.   }
  36.   while (rot--)  /* do the big rotate */
  37.   {
  38.     bits[66]=bits[0];
  39.     for (i=0;i<=65;i++)
  40.       bits[i]=bits[i+1];
  41.   }
  42.     
  43.   for (i=0;i<8;i++)  
  44.   { 
  45.     newpw[i]=0;
  46.     for (j=0;j<7;j++)
  47.     {                                  
  48.       bit=bits[i+j*8];
  49.       newpw[i]|=(bit<<j);  /* and compile the bit array back */  
  50.     }
  51.   }   
  52.   newpw[8]=0;
  53.   return newpw;
  54. }   
  55.  
  56.